#include "ScenarioElement.h"

ScenarioElement::ScenarioElement() {
}

ScenarioElement::ScenarioElement(DTOScenarioElement* dto) :
		Widget(0, 0, NULL) {
	element = loadSurface(dto->getElementImagePath());
	parcel.height = element->h;
	parcel.width = element->w;
	parcel.posX = dto->getXPos();
	parcel.posY = dto->getYPos();
	path = dto->getElementImagePath();
}

DTOScenarioElement* ScenarioElement::getDTO() {
	return new DTOScenarioElement(parcel.posX, parcel.posY, this->path);
}

void ScenarioElement::handleEvent(Event event) {
	//NO hacen nada los elementos de juego aún;
}

ScenarioElement::ScenarioElement(int xPos, int yPos, Widget *parent,
		std::string elementImagePath) :
		Widget(xPos, yPos, parent) {
	element = loadSurface(elementImagePath);
	parcel.height = element->h;
	parcel.width = element->w;
	parcel.posX = xPos;
	parcel.posY = yPos;
	path = elementImagePath;
}

void ScenarioElement::resolve() {
	//Nada que resolver aún
}

void ScenarioElement::showOn(SDL_Surface *surface) {
	SDL_Rect rect;
	rect.x = parcel.posX;
	rect.y = parcel.posY;
	rect.w = parcel.width;
	rect.h = parcel.height;
	SDL_BlitSurface(element, NULL, surface, &rect);

}

void ScenarioElement::setParent(Widget *parent) {
	this->parent = parent;
	Parcel aux = getPosition();
	parcel.posX += aux.posX;
	parcel.posY += aux.posY;
}

bool ScenarioElement::getMouseAttach() const {
	return this->mouseAttached;
}

void ScenarioElement::setMouseAttach() {
	this->mouseAttached = true;
}

void ScenarioElement::unsetMouseAttach() {
	this->mouseAttached = false;
}

int ScenarioElement::getXPos() const {
	return parcel.posX;

}

int ScenarioElement::getYPos() const {
	return parcel.posY;
}

std::string ScenarioElement::getName() const {
	return this->path;
}

std::string ScenarioElement::getPath() const {
	return this->path;
}

void ScenarioElement::setPath(std::string path) {
	this->path = path;
}

ScenarioElement::~ScenarioElement() {
	SDL_FreeSurface(element);
}

